package com.phone.modules.pms.service.impl;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.phone.modules.pms.dto.PmsProductDetailDTO;
import com.phone.modules.pms.dto.PmsProductQueryDTO;
import com.phone.modules.pms.dto.PmsProductResultDTO;
import com.phone.modules.pms.model.PmsProduct;
import com.phone.modules.pms.mapper.PmsProductMapper;
import com.phone.modules.pms.service.PmsProductService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author WangHao
 * @since 2022-04-14
 */
@Service
public class PmsProductServiceImpl extends ServiceImpl<PmsProductMapper, PmsProduct> implements PmsProductService {

    @Autowired
    PmsProductMapper productMapper;

    /**
     * 前台展示，返回手机详情
     * @param id
     * @return
     */
    @Override
    public PmsProductDetailDTO getDetail(Long id) {
        return productMapper.getDetail(id);
    }

    /**
     * 前台展示，返回品牌和手机列表
     * @return
     */
    @Override
    public List<PmsProductResultDTO> searchList(PmsProductQueryDTO productQuery) {
        return productMapper.searchList(productQuery);
    }

    /**
     * 查询手机
     * @param productQueryDTO
     * @param pageSize
     * @param pageNum
     * @return
     */
    @Override
    public Page list(PmsProductQueryDTO productQueryDTO, Integer pageSize, Integer pageNum) {
        Page page = new Page(pageNum, pageSize);
        QueryWrapper<PmsProduct> queryWrapper = new QueryWrapper<>();
        LambdaQueryWrapper<PmsProduct> lambdaWrapper = queryWrapper.lambda();
        // 商品名称
        if(!StrUtil.isBlank(productQueryDTO.getKeyword())){
            lambdaWrapper.like(PmsProduct::getProductName, productQueryDTO.getKeyword());
        }
        // 商品品牌
        if(productQueryDTO.getBrandId()!=null && productQueryDTO.getBrandId()>0){
            lambdaWrapper.eq(PmsProduct::getBrandId,productQueryDTO.getBrandId());
        }
        return this.page(page, queryWrapper);
    }

    /**
     * 添加手机
     * @param pmsProduct
     * @return
     */
    @Override
    public boolean createProduct(PmsProduct pmsProduct) {
        return this.save(pmsProduct);
    }

    @Override
    public PmsProduct getUpdateInfo(Long id) {
        return this.getById(id);
    }

    /**
     * 修改手机信息
     * @param id
     * @param pmsProduct
     * @return
     */
    @Override
    public boolean updateProduct(Long id, PmsProduct pmsProduct) {
        pmsProduct.setId(id);
        return this.updateById(pmsProduct);
    }

    /**
     * 批量修改删除状态
     * @param ids
     * @param deleteStatus
     * @return
     */
    @Override
    public boolean updateDeleteStatus(List<Long> ids, Integer deleteStatus) {
        return this.removeByIds(ids);
    }
}
